import 'package:flutter/material.dart';

class AppTextButton extends StatelessWidget {
  final String text; // 按钮文字
  final VoidCallback onPressed; // 按钮点击事件
  final Color? backgroundColor; // 按钮背景颜色
  final Color textColor; // 按钮文字颜色
  final double? width; // 按钮宽度（可选）
  final double height; // 按钮高度

  const AppTextButton({
    super.key,
    required this.text,
    required this.onPressed,
    this.backgroundColor,
    this.textColor = Colors.black,
    this.width, // 可选宽度，默认不指定
    this.height = 40.0, // 默认高度 40
  });

  @override
  Widget build(BuildContext context) {
    // 计算背景色逻辑
    final Color resolvedBackgroundColor = backgroundColor ?? textColor.withOpacity(0.1);
    return SizedBox(
      width: width ?? double.infinity, // 默认占满父组件宽度
      height: height, // 使用传递的高度
      child: TextButton(
        onPressed: onPressed,
        style: TextButton.styleFrom(
          backgroundColor: resolvedBackgroundColor,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(height / 2), // 圆角为高度一半
          ),
        ),
        child: Text(
          text,
          style: TextStyle(color: textColor, fontSize: 14.0),
        ),
      ),
    );
  }
}